Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: #153 #177

Merged
merged 15 commits into from
Nov 22, 2022
Merged

feat: #153 #177

merged 15 commits into from
Nov 22, 2022

Conversation

hugomrdias
Copy link
Contributor

@hugomrdias hugomrdias commented Nov 16, 2022

  • typedoc support to generate docs for all the clients
  • add list of Abilities types
  • renamed any.js to wildcard.js
  • added parseAbility and canDelegateAbility functions to the capabilities utils.js
  • cli is mostly commented out needs to be updated in a follow PR
  • StoreData interface revamped
  • added more exports to index.js to help with the generated docs until typedoc supports export maps
  • added a bunch of delegation utilities to delegation.js
  • agent has new methods, addProof, proofs, delegations, delegationsWithMeta, createSpace, setCurrentSpace, currentSpace, currentSpaceWithMeta and execute
  • old createAccount renamed to registerSpace
  • a bunch of jsdocs

preview docs https://vigorous-chandrasekhar-6b427f.netlify.app/

todo:

  • rename caps
  • rename account to space in api
  • finish setup wrangler migrations for staging and prod (using CI)
  • more docs for agent methods
  • feedback
  • support multiple invocations to be executed on a connection

@cloudflare-workers-and-pages
Copy link

cloudflare-workers-and-pages bot commented Nov 16, 2022

Deploying with  Cloudflare Pages  Cloudflare Pages

Latest commit: 4b7250c
Status: ✅  Deploy successful!
Preview URL: https://e1f5f165.ucan-protocol.pages.dev
Branch Preview URL: https://feat--153-2.ucan-protocol.pages.dev

View logs

@hugomrdias hugomrdias changed the title Feat/#153-2 feat: #153 Nov 16, 2022
@hugomrdias hugomrdias temporarily deployed to dev November 16, 2022 20:27 Inactive
@hugomrdias hugomrdias temporarily deployed to dev November 17, 2022 13:09 Inactive
packages/access-client/src/capabilities/wildcard.js Outdated Show resolved Hide resolved
packages/access-client/src/capabilities/space.js Outdated Show resolved Hide resolved
packages/access-client/src/capabilities/utils.js Outdated Show resolved Hide resolved
* @param {import('@ucanto/interface').Ability} parent
* @param {import('@ucanto/interface').Ability} child
*/
export function canDelegateAbility(parent, child) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This feels like a utility ucanto should provide. Suggest opening an issue?

// }
// } else {
// console.error(`Run "${NAME} setup" first`)
// }
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Needs implementation?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

im gonna rework the cli in a follow up

// }
// } else {
// console.error(`Run "${NAME} setup" first`)
// }
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Needs implementation?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

im gonna rework the cli in a follow up

@@ -41,6 +40,10 @@ export class StoreIndexedDB {
this.#dbStoreName = options.dbStoreName ?? STORE_NAME
}

/**
*
* @returns {Promise<Store>}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you declare that these instance methods return a Store then you lose the ability to use it in specifics. It should adhere to that interface anyway, you shouldn't need to explicitly state it.

There's a bunch of these that have been added - do we really need to?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This Store type is the local one defined at the top of the file, its already specific. If you dont do this you loose the method documentation defined in the types.ts file for the interface.

What are we losing here ?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh ok I thought this was referring to the interface!

packages/access-client/test/awake.node.test.js Outdated Show resolved Hide resolved
Conflicts:
	packages/store/package.json
	pnpm-lock.yaml
- add list of Abilities types
- renamed `any.js` to `wildcard.js`
- added `parseAbility` and `canDelegateAbility` functions to the capabilities `utils.js`
- cli is mostly commented out needs to be updated in a follow PR
- StoreData interface revamped
- added more exports to index.js to help with the generated docs until typedoc supports export maps
- added a bunch of delegation utilities to `delegation.js`
- agent has new methods, `addProof`, `proofs`, `proofWithMeta`, `delegations`, `delegationsWithMeta`, `createAccount`, `setCurrentAccount`, `currentAccount`, `currentAccountWithMeta` and `execute`
- old createAccount renamed to `registerAccount`

Conflicts:
	packages/access-client/package.json
	packages/access-client/src/capabilities/utils.js
	packages/access-client/src/capabilities/voucher.js
@hugomrdias hugomrdias temporarily deployed to dev November 21, 2022 18:36 Inactive
@hugomrdias hugomrdias linked an issue Nov 21, 2022 that may be closed by this pull request
@hugomrdias hugomrdias temporarily deployed to dev November 22, 2022 11:15 Inactive
@hugomrdias hugomrdias merged commit d6d448c into main Nov 22, 2022
@hugomrdias hugomrdias deleted the feat/#153-2 branch November 22, 2022 11:17
vasco-santos pushed a commit that referenced this pull request Nov 22, 2022
🤖 I have created a release *beep* *boop*
---


##
[6.0.0](access-v5.0.2...access-v6.0.0)
(2022-11-22)


### ⚠ BREAKING CHANGES

* **access-client:** bump to major
* store/list and upload/list types now require nb object with optional
properties

### Features

* [#153](#153)
([#177](#177))
([d6d448c](d6d448c))
* **access-client:** bump to major
([4d5899f](4d5899f))
* account recover with email
([#149](#149))
([6c659ba](6c659ba))
* add support for list pagination in list capability invocations
([#184](#184))
([ced23db](ced23db))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
alanshaw pushed a commit that referenced this pull request Nov 22, 2022
🤖 I have created a release *beep* *boop*
---


##
[2.0.0](upload-client-v1.1.1...upload-client-v2.0.0)
(2022-11-22)


### ⚠ BREAKING CHANGES

* rename callback (#198)

### Features

* [#153](#153)
([#177](#177))
([d6d448c](d6d448c))


### Bug Fixes

* export types
([c8d0a3f](c8d0a3f))
* store export
([#197](#197))
([9b836e6](9b836e6))
* upload client list needs empty nb
([#194](#194))
([ff7fbb8](ff7fbb8))


### Code Refactoring

* rename callback
([#198](#198))
([5b8ef7d](5b8ef7d))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
gobengo pushed a commit that referenced this pull request Dec 7, 2022
🤖 I have created a release *beep* *boop*
---


##
[5.0.0](upload-client-v4.0.0...upload-client-v5.0.0)
(2022-12-07)


### ⚠ BREAKING CHANGES

* upgrade access-api @ucanto/* and @ipld/dag-ucan major versions
([#246](#246))
* upload/list items have a shards array property
([#229](#229))
* upgrade to `@ucanto/{interface,principal}`@^4.0.0
([#238](#238))
* follow up on the capabilities extract
([#239](#239))
* rename callback
([#198](#198))

### Features

* [#153](#153)
([#177](#177))
([d6d448c](d6d448c))
* a base for a new web3.storage upload-client
([#141](#141))
([9d4b5be](9d4b5be))
* **access-client:** cli and recover
([#207](#207))
([adb3a8d](adb3a8d))
* account recover with email
([#149](#149))
([6c659ba](6c659ba))
* add static uploads API
([#148](#148))
([d85d051](d85d051))
* allow custom shard size
([#185](#185))
([0cada8a](0cada8a))
* explicit resource
([#181](#181))
([785924b](785924b))
* follow up on the capabilities extract
([#239](#239))
([ef5e779](ef5e779))
* Revert "feat!: upgrade to `@ucanto/{interface,principal}`@^4.0.0"
([#245](#245))
([c182bbe](c182bbe))
* support pagination
([#204](#204))
([a5296a6](a5296a6)),
closes [#201](#201)
* upgrade access-api @ucanto/* and @ipld/dag-ucan major versions
([#246](#246))
([5e663d1](5e663d1))
* upgrade to `@ucanto/{interface,principal}`@^4.0.0
([#238](#238))
([2f3bab8](2f3bab8))
* upload/list items have a shards array property
([#229](#229))
([c00da35](c00da35))


### Bug Fixes

* export types
([c8d0a3f](c8d0a3f))
* list response results return type
([#206](#206))
([4bca6c1](4bca6c1))
* store export
([#197](#197))
([9b836e6](9b836e6))
* upload client list needs empty nb
([#194](#194))
([ff7fbb8](ff7fbb8))
* uploadFile requires BlobLike not Blob
([1cc7681](1cc7681))


### Code Refactoring

* rename callback
([#198](#198))
([5b8ef7d](5b8ef7d))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
hugomrdias added a commit that referenced this pull request Dec 13, 2022
🤖 I have created a release *beep* *boop*
---


##
[4.0.0](access-api-v3.0.0...access-api-v4.0.0)
(2022-12-13)


### ⚠ BREAKING CHANGES

* upgrade access-api @ucanto/* and @ipld/dag-ucan major versions
([#246](#246))
* access-client store decoupling
([#228](#228))
* upgrade to `@ucanto/{interface,principal}`@^4.0.0
([#238](#238))
* follow up on the capabilities extract
([#239](#239))
* doc capabilities & make requierd nb non-optionals
([#159](#159))
* Remove 0.8 caps and add account delegation to the service
([#123](#123))
* bump to 0.9
([#116](#116))

### Features

* [#153](#153)
([#177](#177))
([d6d448c](d6d448c))
* access-api uses DID env variable when building its ucanto server id
([#275](#275))
([311da78](311da78))
* **access-client:** cli and recover
([#207](#207))
([adb3a8d](adb3a8d))
* account recover with email
([#149](#149))
([6c659ba](6c659ba))
* bump to 0.9
([#116](#116))
([3e0b63f](3e0b63f))
* doc capabilities & make requierd nb non-optionals
([#159](#159))
([6496773](6496773))
* follow up on the capabilities extract
([#239](#239))
([ef5e779](ef5e779))
* Remove 0.8 caps and add account delegation to the service
([#123](#123))
([878f8c9](878f8c9)),
closes [#117](#117)
[#121](#121)
* Revert "feat!: upgrade to `@ucanto/{interface,principal}`@^4.0.0"
([#245](#245))
([c182bbe](c182bbe))
* sync encode/decode delegations
([#276](#276))
([ab981fb](ab981fb))
* upgrade access-api @ucanto/* and @ipld/dag-ucan major versions
([#246](#246))
([5e663d1](5e663d1))
* upgrade to `@ucanto/{interface,principal}`@^4.0.0
([#238](#238))
([2f3bab8](2f3bab8))


### Bug Fixes

* 0.9 ([#78](#78))
([1b1ed01](1b1ed01))
* add validation copy
([#257](#257))
([7f50af4](7f50af4)),
closes [#139](#139)
* fix Access API cannot get space/info
[#243](#243)
([#255](#255))
([1bacd54](1bacd54))
* fix d1 migrations
([#264](#264))
([fb8c09d](fb8c09d))
* make d1 spaces.metadata nullable and change to kysely
([#284](#284))
([c8a9ce5](c8a9ce5)),
closes [#280](#280)
* make multiformats 9 go away
([#133](#133))
([2668880](2668880))
* miniflare dev script
([#137](#137))
([1c5a4e2](1c5a4e2))
* testing staging deploy
([3d500fa](3d500fa))
* try to deploy api staging
([18b7b29](18b7b29))
* try to deploy staging
([c616818](c616818))


### Code Refactoring

* access-client store decoupling
([#228](#228))
([a785278](a785278))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
gobengo pushed a commit that referenced this pull request Apr 11, 2023
- typedoc support to generate docs for all the clients
- add list of Abilities types
- renamed `any.js` to `wildcard.js`
- added `parseAbility` and `canDelegateAbility` functions to the
capabilities `utils.js`
- cli is mostly commented out needs to be updated in a follow PR
- StoreData interface revamped
- added more exports to index.js to help with the generated docs until
typedoc supports export maps
- added a bunch of delegation utilities to `delegation.js`
- agent has new methods, `addProof`, `proofs`, `delegations`,
`delegationsWithMeta`, `createSpace`, `setCurrentSpace`, `currentSpace`,
`currentSpaceWithMeta` and `execute`
- old createAccount renamed to `registerSpace`
- a bunch of jsdocs 

preview docs https://vigorous-chandrasekhar-6b427f.netlify.app/

todo:

- [x] rename caps
- [x] rename account to space in api
- [x] finish setup wrangler migrations for staging and prod (using CI)
- [x] more docs for agent methods 
- [x] feedback
- [x] support multiple invocations to be executed on a connection
gobengo pushed a commit that referenced this pull request Apr 11, 2023
🤖 I have created a release *beep* *boop*
---


##
[6.0.0](access-v5.0.2...access-v6.0.0)
(2022-11-22)


### ⚠ BREAKING CHANGES

* **access-client:** bump to major
* store/list and upload/list types now require nb object with optional
properties

### Features

* [#153](#153)
([#177](#177))
([7fbf2a1](7fbf2a1))
* **access-client:** bump to major
([7be598d](7be598d))
* account recover with email
([#149](#149))
([91ad47d](91ad47d))
* add support for list pagination in list capability invocations
([#184](#184))
([23206ad](23206ad))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
gobengo pushed a commit that referenced this pull request Apr 11, 2023
🤖 I have created a release *beep* *boop*
---


##
[2.0.0](upload-client-v1.1.1...upload-client-v2.0.0)
(2022-11-22)


### ⚠ BREAKING CHANGES

* rename callback (#198)

### Features

* [#153](#153)
([#177](#177))
([7fbf2a1](7fbf2a1))


### Bug Fixes

* export types
([c44a252](c44a252))
* store export
([#197](#197))
([d2296c5](d2296c5))
* upload client list needs empty nb
([#194](#194))
([7894fb9](7894fb9))


### Code Refactoring

* rename callback
([#198](#198))
([2349763](2349763))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
gobengo pushed a commit that referenced this pull request Apr 11, 2023
🤖 I have created a release *beep* *boop*
---


##
[5.0.0](upload-client-v4.0.0...upload-client-v5.0.0)
(2022-12-07)


### ⚠ BREAKING CHANGES

* upgrade access-api @ucanto/* and @ipld/dag-ucan major versions
([#246](#246))
* upload/list items have a shards array property
([#229](#229))
* upgrade to `@ucanto/{interface,principal}`@^4.0.0
([#238](#238))
* follow up on the capabilities extract
([#239](#239))
* rename callback
([#198](#198))

### Features

* [#153](#153)
([#177](#177))
([7fbf2a1](7fbf2a1))
* a base for a new web3.storage upload-client
([#141](#141))
([72c08d7](72c08d7))
* **access-client:** cli and recover
([#207](#207))
([720dafb](720dafb))
* account recover with email
([#149](#149))
([91ad47d](91ad47d))
* add static uploads API
([#148](#148))
([8b735fa](8b735fa))
* allow custom shard size
([#185](#185))
([2130405](2130405))
* explicit resource
([#181](#181))
([c127431](c127431))
* follow up on the capabilities extract
([#239](#239))
([717fcaa](717fcaa))
* Revert "feat!: upgrade to `@ucanto/{interface,principal}`@^4.0.0"
([#245](#245))
([197439e](197439e))
* support pagination
([#204](#204))
([363e3ac](363e3ac)),
closes [#201](#201)
* upgrade access-api @ucanto/* and @ipld/dag-ucan major versions
([#246](#246))
([65d191c](65d191c))
* upgrade to `@ucanto/{interface,principal}`@^4.0.0
([#238](#238))
([309aff0](309aff0))
* upload/list items have a shards array property
([#229](#229))
([723b281](723b281))


### Bug Fixes

* export types
([c44a252](c44a252))
* list response results return type
([#206](#206))
([e49c685](e49c685))
* store export
([#197](#197))
([d2296c5](d2296c5))
* upload client list needs empty nb
([#194](#194))
([7894fb9](7894fb9))
* uploadFile requires BlobLike not Blob
([56ec496](56ec496))


### Code Refactoring

* rename callback
([#198](#198))
([2349763](2349763))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
gobengo pushed a commit that referenced this pull request Apr 11, 2023
🤖 I have created a release *beep* *boop*
---


##
[4.0.0](access-api-v3.0.0...access-api-v4.0.0)
(2022-12-13)


### ⚠ BREAKING CHANGES

* upgrade access-api @ucanto/* and @ipld/dag-ucan major versions
([#246](#246))
* access-client store decoupling
([#228](#228))
* upgrade to `@ucanto/{interface,principal}`@^4.0.0
([#238](#238))
* follow up on the capabilities extract
([#239](#239))
* doc capabilities & make requierd nb non-optionals
([#159](#159))
* Remove 0.8 caps and add account delegation to the service
([#123](#123))
* bump to 0.9
([#116](#116))

### Features

* [#153](#153)
([#177](#177))
([7fbf2a1](7fbf2a1))
* access-api uses DID env variable when building its ucanto server id
([#275](#275))
([e8326ec](e8326ec))
* **access-client:** cli and recover
([#207](#207))
([720dafb](720dafb))
* account recover with email
([#149](#149))
([91ad47d](91ad47d))
* bump to 0.9
([#116](#116))
([29cf63c](29cf63c))
* doc capabilities & make requierd nb non-optionals
([#159](#159))
([f6b6d06](f6b6d06))
* follow up on the capabilities extract
([#239](#239))
([717fcaa](717fcaa))
* Remove 0.8 caps and add account delegation to the service
([#123](#123))
([c3c58b9](c3c58b9)),
closes [#117](#117)
[#121](#121)
* Revert "feat!: upgrade to `@ucanto/{interface,principal}`@^4.0.0"
([#245](#245))
([197439e](197439e))
* sync encode/decode delegations
([#276](#276))
([9d48372](9d48372))
* upgrade access-api @ucanto/* and @ipld/dag-ucan major versions
([#246](#246))
([65d191c](65d191c))
* upgrade to `@ucanto/{interface,principal}`@^4.0.0
([#238](#238))
([309aff0](309aff0))


### Bug Fixes

* 0.9 ([#78](#78))
([561c68b](561c68b))
* add validation copy
([#257](#257))
([0bd49ce](0bd49ce)),
closes [#139](#139)
* fix Access API cannot get space/info
[#243](#243)
([#255](#255))
([1a74031](1a74031))
* fix d1 migrations
([#264](#264))
([5b8a6e7](5b8a6e7))
* make d1 spaces.metadata nullable and change to kysely
([#284](#284))
([7f09479](7f09479)),
closes [#280](#280)
* make multiformats 9 go away
([#133](#133))
([cdb4109](cdb4109))
* miniflare dev script
([#137](#137))
([f2cffb2](f2cffb2))
* testing staging deploy
([975cffc](975cffc))
* try to deploy api staging
([5130464](5130464))
* try to deploy staging
([4e56657](4e56657))


### Code Refactoring

* access-client store decoupling
([#228](#228))
([64c7496](64c7496))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants